home *** CD-ROM | disk | FTP | other *** search
/ Gekkan Dennou Club 147 / Gekkan Dennou Club - 2000.8 Vol. 147 (Japan).7z / Gekkan Dennou Club - 2000.8 Vol. 147 (Japan) (Track 1).bin / tools / ask / gmd / source / gmd.h < prev    next >
Text File  |  2000-02-10  |  3KB  |  84 lines

  1. /* AIGライブラリ GMDサポート関数
  2.     Copyright (C) 1997-98,2000 by AIG-SOFT
  3. */
  4. #ifndef    __AIG_GMD__
  5. #define    __AIG_GMD__    1    /* ヘッダー読み込みシンボル */
  6.  
  7. #ifndef    __CLASS_H
  8. #include <class.h>
  9. #endif
  10.  
  11. /* 定数 */
  12. #define    GMD_SYMBOL    "AIG-GMD"    /* デバイスシンボル */
  13. // 実際にはGMDDevName()を使えば、これらのデバイス名定数を使うことはない
  14. //(通常は使わないように)
  15. #define    GMD_NAME    "@MOJI"    /* デバイス名 通常 */
  16. #define    GMD_NAME2    "@GMD"    /* デバイス名 /G時 */
  17.  
  18. #define    NOCHR        0xffff    /* 認識不可文字 */
  19. #define    WTERR        0xfffe    /* 書き込みエラー */
  20.  
  21. #define    GMDNull        (0)    /* SetWriter/SetGroupの初期化コード */
  22.  
  23. // APIコマンド
  24. #define    GMD_Read1    1    /* 1文字読みだし */
  25. #define    GMD_ReadTango    2    /* 単語読みだし */
  26. #define    GMD_Read    3    /* 指定文字数読みだし */
  27. #define    GMD_SetWriter    4    /* 書き込みルーチン設定 */
  28. #define    GMD_SetGroup    5    /* Groupルーチン設定 */
  29. #define    GMD_MoveCursor    6    /* 文字幅に合わせたカーソル移動 */
  30. #define    GMD_ReadVer    7    /* バージョン読みだし */
  31. #define    GMD_JLock    8    /* 常駐ロック */
  32. #define    GMD_JUnlock    9    /* 常駐アンロック */
  33. #define    GMD_DevNameA    10    /* デバイス名取得 */
  34. #define    GMD_RevMode    11    /* 反転文字読み取りモード */
  35.  
  36. /* GMD関数はプロトタイプ宣言のみ用意 */
  37. // 実は、SetWriter/SetGroupの書き方には自身がない^^;
  38. // 誰か直して・・・
  39. #ifdef    __cplusplus    /* G++対応 */
  40. extern    "C" {
  41. #endif
  42.     int    DevCheck(UBYTE *);
  43.     int    GMDCheck(void);
  44.     int    GMDReadData(UBYTE *);
  45.     void    GMDDevName(UBYTE *);
  46.     // API関数
  47.     int    GMDSetAPI(void);
  48.     long    GMDCallAPI(UBYTE);
  49.     long    GMDCallAPI1d(UBYTE,long);
  50.     void    *GMDCallAPI1a(UBYTE,void *);
  51.     long    GMDCallAPI2(UBYTE,long ,long);
  52.     //
  53.     long    GMDRead1(int,int);
  54.     long    GMDReadTango(int,int);
  55.     long    GMDRead(int,int,int);
  56.     int    (*GMDSetWriter)(int (*)());
  57.     int    (*GMDSetGroup)(int (*)());
  58.     void    GMDMoveCursor(int);
  59.     int    GMDReadVer(void);
  60.     int    GMDJLock(void);
  61.     int    GMDJUnlock(void);
  62.     void    GMDDevNameA(UBYTE *);
  63.     int    GMDRevMode(int);
  64. #ifdef    __cplusplus
  65. }
  66. #endif
  67. // (x,y)の座標をxyにする定義
  68. #define    Xyx(x,y)        ((x)<<16|(y))
  69. // API関数
  70. // アセンブラーレベルのAPIとは若干異なる
  71. #define    GMDReadVer()        GMDCallAPI(GMD_ReadVer)
  72. #define    GMDJLock()        GMDCallAPI(GMD_JLock)
  73. #define    GMDJUnlock()        GMDCallAPI(GMD_JUnlock)
  74. #define    GMDRead1(x,y)        GMDCallAPI1d(GMD_Read1,Xyx(x,y))
  75. #define    GMDReadTango(x,y)    GMDCallAPI1d(GMD_ReadTango,Xyx(x,y))
  76. #define    GMDMoveCursor(sz)    GMDCallAPI1d(GMD_MoveCursor,sz)
  77. #define    GMDSetWriter(ad)    GMDCallAPI1a(GMD_SetWriter,ad)
  78. #define    GMDSetGroup(ad)        GMDCallAPI1a(GMD_SetGroup,ad)
  79. #define    GMDRead(x,y,size)    GMDCallAPI2(GMD_Read,Xyx(x,y),size)
  80. #define    GMDDevNameA(nm)        GMDCallAPI1a(GMD_DevNameA,nm)
  81. #define    GMDRevMode(md)        GMDCallAPI1d(GMD_RevMode,md)
  82.  
  83. #endif
  84.